using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Storage;
using Microsoft.Xna.Framework.Content;

using FarseerGames.FarseerPhysics;
using FarseerGames.FarseerPhysics.Dynamics;
using FarseerGames.FarseerPhysics.Collisions;
using FarseerGames.FarseerPhysics.Mathematics;

using BriansClimb.DrawableGameObjects.ClimbingHolds;

namespace BriansClimb.GameObjects
{
    /// <summary>
    /// This is a game component that sends the wall list to the climber and the game scene.
    /// </summary>
    public class BodyPartInfoHandler : Microsoft.Xna.Framework.GameComponent
    {

        
        //!List of climbing holds.
        protected List<ClimbingHold> climbingObjectHoldList;

        /// <summary>
        /// Default constructor.
        /// </summary>
        /// <param name="game">Master game object</param>
        public BodyPartInfoHandler(Game game)
            : base(game)
        {
 
        }

        /// <summary>
        /// Allows the game component to perform any initialization it needs to before starting
        /// to run.  This is where it can query for any required services and load content.
        /// </summary>
        public override void Initialize()
        {
            // TODO: Add your initialization code here

            base.Initialize();
        }       

        /// <summary>
        /// Sets the list of climbing holds.
        /// </summary>
        /// <param name="listIn">List of Clingingholds to set</param>
        public void setWallList(List<ClimbingHold> listIn)
        {
            climbingObjectHoldList = listIn;
        }

        /// <summary>
        /// Returns the list of climbing holds.
        /// </summary>
        /// <returns>List of climbing holds.</returns>
        public List<ClimbingHold> getWallList()
        {
            return climbingObjectHoldList;
        } 

        /// <summary>
        /// Allows the game component to update itself.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        public override void Update(GameTime gameTime)
        {
            // TODO: Add your update code here

            base.Update(gameTime);
        }
    }
}